package entity

import "time"

type Message struct {
	Type    string
	Data    string
	Status  bool   // 状态
	Message string // 回复信息
}

const (
	Male   = 0
	Female = 1
)

const (
	UserOffline = uint8(0)
	UserOnline  = uint8(1)
)

const (
	LoginMesType            = "LoginMes"
	LoginResMesType         = "LoginResMes"
	NotifyUserStatusMesType = "NotifyUserStatusMes"
	SmsMesType              = "SmsMes"
	SmsMes2OneType          = "SmsMes2One"
	LogoutType              = "Logout"

	AskForUsersType    = "AskForUsers"   // 根据昵称模糊查询用户列表
	IsFriendType       = "IsFriend"      // 双方是否为好友
	NotifyUserAddType  = "NotifyUserAdd" // 通知用户添加
	FindFriedAddType   = "FindFriedAdd"
	Select2AddType     = "Select2Add"  // 选择添加的好友
	FindFriendType     = "FindFriend"  // 查询用户好友列表
	CreateGroupType    = "CreateGroup" // 创建群聊
	NotifyGroupAddType = "NotifyGroupAdd"
	FindGIType         = "FindGI"
	AcceptGIType       = "AcceptGI"
	FindGroupType      = "FindGroup"
	SmsMes2GroupType   = "SmsMes2Group"
	NoteP2PReadType    = "NoteP2PRead"
	FriendAddType      = "FriendAdd"
	NoteGmReadType     = "NoteGmRead"
	TimeSendType       = "TimeSend"
	ChattingRecType    = "ChattingRec"
	HeartBeatType      = "HeartBeat"
)

type LoginMes struct {
	UserId      int    `json:"user_id"`
	UserAccount string `json:"user_account"`
	UserPwd     string `json:"user_pwd"`
}

type LoginResMes struct {
	Code    int           `json:"code"`     // 500: no register 200: success
	UserIds []uint        `json:"user_ids"` // 保存所有在线用户id的切片
	User    User          `json:"user"`
	Error   string        `json:"error"`
	P2p_msg []P2PMsg      `json:"p2p_msg"`
	P2m_msg []P2MMsg      `json:"p2m_msg"`
	AddIds  []uint        `json:"add_ids"`
	Gis     []GroupInvite `json:"gis"`
}

type FindUserByNameMes struct {
	UserId   uint   `json:"user_id"`
	FindName string `json:"find_name"`
}

type IsFriendMes struct {
	SourceId     uint   `json:"source_id"` // 发起人
	TargetId     uint   `json:"target_id"` // 目标人
	Flag         bool   `json:"flag"`
	MutualFriend []uint `json:"mutual_friend"`
	Msg          string
}

type NotifyUserAdd struct {
	SourceId uint `json:"source_id"`
	TargetId uint `json:"target_id"`
}

type NotifyUserStatusMes struct {
	UserId uint  `json:"user_id"`
	Status uint8 `json:"status"`
}

type SmsMes struct {
	Content string `json:"content"`
	User    User   `json:"user"`
}

//type SmsMes2one struct {
//	TagetId uint   `json:"taget_id"`
//	Content string `json:"content"`
//	User    User   `json:"user"`
//}

type SmsMes2Group struct {
	Gid     uint   `json:"gid"`
	Content string `json:"content"`
	User    User   `json:"user"`
}

type LogoutMes struct {
	Id uint `json:"id"`
}

type FindFriendAddMes struct {
	SourceId uint   `json:"source_id"`
	Friends  []User `json:"friends"` // 这里是好友的用户信息
}

type FriendAdd struct {
	Status       uint8 `json:"status"`        // 是否添加成功
	FirendOnline bool  `json:"firend_online"` // 好有是否在线
}

type TimeSend struct {
	SendId uint          `json:"send_id"`
	RecvId uint          `json:"recv_id"`
	Time   time.Duration `json:"time"`
	Msg    string        `json:"msg"`
}
